1 using UnityEngine;
2
3
4 [RequireComponent(
typeof(ChatGui))]
5 public
class NamePickGui : MonoBehaviour
6 {
7     
public Vector2 GuiSize = new Vector2(200, 300);
8     
public string InputLine = string.Empty;
9
10     
private Rect guiCenteredRect;
11     
private ChatGui chatComponent;
12     
private string helpText = "Welcome to the Photon Chat demo.\nEnter a nickname to start. This demo does not require users to authenticate.";
13     
private const string UserNamePlayerPref = "NamePickUserName";
14
15     
public void Awake()
16     {
17         
this.guiCenteredRect = new Rect(Screen.width/2-GuiSize.x/2, Screen.height/2-GuiSize.y/4, GuiSize.x, GuiSize.y);
18         
this.chatComponent = this.GetComponent<ChatGui>();
19
20         
if (this.chatComponent != null && chatComponent.enabled)
21         {
22             Debug.LogWarning(
"When using the NamePickGui, ChatGui should be disabled initially.");
23             
24             
if (this.chatComponent.chatClient != null)
25             {
26                 
this.chatComponent.chatClient.Disconnect();
27             }
28             
this.chatComponent.enabled = false;
29         }
30
31         
string prefsName = PlayerPrefs.GetString(NamePickGui.UserNamePlayerPref);
32         
if (!string.IsNullOrEmpty(prefsName))
33         {
34             
this.InputLine = prefsName;
35         }
36     }
37     
38     
public void OnGUI()
39     {
40         
// Enter-Key handling:
41         
if (Event.current.type == EventType.KeyDown && (Event.current.keyCode == KeyCode.KeypadEnter || Event.current.keyCode == KeyCode.Return))
42         {
43             
if (!string.IsNullOrEmpty(this.InputLine))
44             {
45                 
this.StartChat();
46                 
return;
47             }
48         }
49
50
51         GUI.skin.label.wordWrap =
true;
52         GUILayout.BeginArea(guiCenteredRect);
53
54
55         
if (this.chatComponent != null && string.IsNullOrEmpty(this.chatComponent.ChatAppId))
56         {
57             GUILayout.Label(
"To continue, configure your Chat AppId.\nIt's listed in the Chat Dashboard (online).\nStop play-mode and edit:\nScripts/ChatGUI in the Hierarchy.");
58             
if (GUILayout.Button("Open Chat Dashboard"))
59             {
60                 Application.OpenURL(
"https://www.exitgames.com/en/Chat/Dashboard");
61             }
62             GUILayout.EndArea();
63             
return;
64         }
65
66         GUILayout.Label(
this.helpText);
67
68         GUILayout.BeginHorizontal();
69         GUI.SetNextControlName(
"NameInput");
70         
this.InputLine = GUILayout.TextField(this.InputLine);
71         
if (GUILayout.Button("Connect", GUILayout.ExpandWidth(false)))
72         {
73             
this.StartChat();
74         }
75         GUILayout.EndHorizontal();
76
77         GUILayout.EndArea();
78
79
80         GUI.FocusControl(
"NameInput");
81     }
82
83     
private void StartChat()
84     {
85         
this.chatComponent.UserName = this.InputLine;
86         
this.chatComponent.enabled = true;
87         
this.enabled = false;
88
89         PlayerPrefs.SetString(NamePickGui.UserNamePlayerPref,
this.InputLine);
90     }
91 }


Enter-Key handling:

Application.OpenURL("https:www.exitgames.comenChatDashboard");




Trò chơi Tic-Tac-Toe, game đánh caro full source code 53.598 lượt xem

Gõ tìm kiếm nhanh...